package com.vision.admin.user.cl;

import java.sql.Timestamp;

import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor.Path;
import com.sencha.gxt.core.client.ValueProvider;
import com.sencha.gxt.data.shared.LabelProvider;
import com.sencha.gxt.data.shared.ModelKeyProvider;
import com.sencha.gxt.data.shared.PropertyAccess;
import com.vision.core.cm.db.data.User;
import com.vision.core.cm.db.data.User.UserStatus;

/**
 * Provides mapping for {@link User} fields to grid columns.
 * 
 * @author Mark
 *
 */
public interface UserProperties extends PropertyAccess<User> {
	
	public static UserProperties INSTANCE = GWT.create(UserProperties.class);
	
	@Path("username")
	ModelKeyProvider<User> key();
	
	@Path("username")
	LabelProvider<User> nameLabel();
	
	ValueProvider<User, String> username();
	ValueProvider<User, String> inverseName();
	ValueProvider<User, String> email();
	ValueProvider<User, Timestamp> dateCreated();
	ValueProvider<User, UserStatus> status();
	ValueProvider<User, Timestamp> lastLogin();
	
}